Align Dynamic Task Interface with Recipe Interface#4311
Align Dynamic Task Interface with Recipe Interface#4311tlongwell-block merged 31 commits intomainfrom
Conversation
DOsinga
left a comment
There was a problem hiding this comment.
Sorry, didn't really get through this or really to the meat of the thing, looks promising so far, questions so far mostly about whether we are having premature backwards compatibility stuff
I've now removed all the backwards compatibility branches around text instructions |
|
overall it looks good, would like to see how others feel |
|
@tlongwell-block I'm not seeing this make use of subagents at all - is that expected? DOesn't seem to break anything but I dont' really follow this change, seems fine otherwise, but not sure what expectation is (is there another change to get it to plan better to make use of subagents more efficiently?) but have been using it today, and seems A-ok, FWIW |
|
almost there - but I think the system prompt has to be adjusted for sub-agents to be more effective. |
| - [ ] Implement feature X | ||
| - [ ] Update API | ||
| - [ ] Write tests | ||
| - [ ] Run tests (subagent in parallel) |
michaelneale
left a comment
There was a problem hiding this comment.
have tried this out, benches well apparently, and addresses a bunch of things I wanted to fix with a subagent hardening PR, a good improvement.
|
also for subagents to be useful at all - need this so it doesn't flood the session. |
* main: Align Dynamic Task Interface with Recipe Interface (#4311) docs: copilot auth and mcp-ui links (#4497) docs: July and August 2025 Community All-Stars Update (#4501) remove clicking outside to close recipe warning (#4502) lower min width to 450 for small screens Convert recipe create and import forms to use tanstack form and zod schema validation (#4499) Repo CI: use a writable location for Goose home directory (#4500) feat: Add functionality to delete session in history list view (#4480) fix: recipe deeplink "+" characters and folder change (#4471) Add session to agents (#4216) fix: need to send errors to appropriate stream (#4491) Add Docker support for Goose in CI/CD pipelines (#4434) Add visual indicator while recipe loads (#4447) Disable chat input while extensions load (#4417) chore(release): release version 1.7.0 (#4391) fix double filtering (#4409) Rewrite the developer mcp using the rmcp sdk (#4297) docs: sessions reorg and conversation features (#4462)
* 'main' of github.com:block/goose: Align Dynamic Task Interface with Recipe Interface (#4311) docs: copilot auth and mcp-ui links (#4497) docs: July and August 2025 Community All-Stars Update (#4501) remove clicking outside to close recipe warning (#4502) lower min width to 450 for small screens Convert recipe create and import forms to use tanstack form and zod schema validation (#4499) Repo CI: use a writable location for Goose home directory (#4500) feat: Add functionality to delete session in history list view (#4480) fix: recipe deeplink "+" characters and folder change (#4471) Add session to agents (#4216) fix: need to send errors to appropriate stream (#4491) Add Docker support for Goose in CI/CD pipelines (#4434) Add visual indicator while recipe loads (#4447) Disable chat input while extensions load (#4417) chore(release): release version 1.7.0 (#4391)
Signed-off-by: Matt Donovan <mattddonovan@protonmail.com>
| "anyOf": [ | ||
| {"required": ["instructions"]}, | ||
| {"required": ["prompt"]} | ||
| ] |
There was a problem hiding this comment.
Looks like this addition broke the integration with providers using llama.cpp: #4815
I'm not 100% familiar with the codebase yet, but I'm trying to propose a fix in the upcoming days. I have tracked it down to this line of code.
I'm testing this with ramalama + llama3.2 (with llama.cpp).
There was a problem hiding this comment.
@r0x0d is that lamma.cpp with rust or out of process? (have a branch playing with former as it is easier to ensure it works, but less powerful).
There was a problem hiding this comment.
So, I'm suing ramalama for that, and playing out with goose from main brranch (latest commit).
I've seen that with ollama it works fine, the problem seems to be with llama.cpp
Signed-off-by: HikaruEgashira <hikaru-egashira@c-fo.com>
Summary
This PR unifies the dynamic task and subrecipe systems by treating dynamic tasks as inline recipes, enabling agents to leverage the full power of the recipe infrastructure without requiring recipe files.
Key Changes
1. Unified Task Format
Dynamic tasks now accept all recipe fields (instructions, prompt, extensions, settings, retry, response schema, etc.), providing agents with ad-hoc access to recipe capabilities previously only available through recipe files.
2. Extension Control
Agents can now precisely control subagent extensions:
[]: No extensions (sandboxed execution)This addresses a critical bug where subagents always loaded all enabled extensions regardless of task specification.
3. Output Control
Added
return_last_onlyflag allowing agents to receive only the final message from subagents instead of the full conversation, reducing token usage and improving efficiency when intermediate steps aren't needed.Benefits
Performance
Safety
Power
Implementation Details
The implementation leverages existing recipe validation and building infrastructure, requiring minimal new code (~300 lines). Dynamic tasks are converted to inline recipes internally, maintaining backward compatibility while providing forward-looking capabilities.
Technical Approach
TaskConfigto include extensions fieldSubAgent::new()to respect specified extensionsTesting
Breaking Changes
None. All existing dynamic task usage continues to work unchanged.
Migration Path
Existing code requires no changes. New features are opt-in through additional fields in the dynamic task parameters.